package com.mychanggou.controller;

import com.mychanggou.file.FastDFSFile;
import com.mychanggou.util.FastDFSUtil;
import entity.Result;
import entity.StatusCode;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

/**
 * @author ：LiuShihao
 * @date ：Created in 2020/9/17 8:51 下午
 * @desc ：
 */
@RestController
@RequestMapping("/file")
@CrossOrigin//跨域
public class FileUploadController {

    @PostMapping("/upload")
     public Result upload(@RequestParam("file")MultipartFile file) throws Exception {
        if(file == null){
            throw new RuntimeException("文件不存在");
        }
        //调用工具类  上传FastDFS文件服务器
        //使用StringUtils.getFilenameExtension 可以获取文件扩展名
        //获取文件名字、文件字节数组、文件扩展名   构造FastDFSFile对象
        //StringUtils.getFilenameExtension(file.getOriginalFilename())  通过这个方法可以获得文件扩展名

        FastDFSFile fastDFSFile = new FastDFSFile(file.getOriginalFilename(),file.getBytes(),StringUtils.getFilenameExtension(file.getOriginalFilename()));

        String[] upload = FastDFSUtil.upload(fastDFSFile);
        //拼接访问地址
        String url =FastDFSUtil.getTrackerInfo()+"/"+upload[0]+"/"+upload[1];

        return new Result(true, StatusCode.OK,"上传成功",url);
     }
}
